<%@ Page language="vb" Codebehind="culminationVB.aspx.vb" Src="culminationVB.aspx.vb" AutoEventWireup="false" Inherits="ASPAuthors.aspnetbyexample.ch08.culminationVB" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
</HEAD>
<body>
<form method="post" runat="server" ID="Form1">
<asp:ValidationSummary Runat="server" ID="valsummary" DisplayMode="BulletList"></asp:ValidationSummary>
<table>
<tr>
<td>
Full Name:
</td>
<td>
<asp:textbox runat="Server" columns="50" id="fullname"></asp:textbox>
</td>
<td>
<asp:requiredfieldvalidator runat="Server" id="fullname_required" controltovalidate="fullname" errormessage="Full Name is required." display="dynamic">
*
</asp:requiredfieldvalidator>
</td>
</tr>
<tr>
<td>
Age:
</td>
<td>
<asp:textbox runat="Server" columns="6" id="age"></asp:textbox>
</td>
<td>
<asp:requiredfieldvalidator runat="Server" id="age_required" controltovalidate="age" display="dynamic" errormessage="Age is required." EnableClientScript="False">
*
</asp:requiredfieldvalidator>
<asp:rangevalidator runat="Server" id="age_range" controltovalidate="age" display="dynamic" errormessage="Age must be an integer between 18 and 65." minimumvalue="18" maximumvalue="65" Type="Integer" EnableClientScript="False">
*
</asp:rangevalidator>
</td>
</tr>
<tr>
<td>
Email
</td>
<td>
<asp:textbox runat="Server" columns="30" id="email"></asp:textbox>
</td>
<td>
<asp:regularexpressionvalidator runat="Server" id="email_regex" controltovalidate="email" errormessage="Email must be in the form of abc@xyz.com." display="dynamic" validationexpression="^[\w-\.]+@([\w-]+\.)+[\w-]{2,3}$">
*
</asp:regularexpressionvalidator>
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<asp:textbox runat="Server" columns="30" id="password"></asp:textbox>
</td>
<td>
<asp:RequiredFieldValidator Runat="server" Display="Dynamic" ControlToValidate="password" ErrorMessage="A password is required." ID="password_required">
*
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator runat="server" Display="Dynamic" ControlToValidate="password" ErrorMessage="Password must be at least 8 characters long." ValidationExpression=".{8}.*" id="RegularExpressionValidator1">
*
</asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
Confirm Password
</td>
<td>
<asp:textbox runat="Server" columns="30" id="password_confirm"></asp:textbox>
</td>
<td>
<asp:RequiredFieldValidator Runat="server" Display="Dynamic" ControlToValidate="password_confirm" ErrorMessage="A confirmation password is required." ID="password_confirm_required">
*
</asp:RequiredFieldValidator>
<asp:CompareValidator Runat="server" Display="Dynamic" ControlToValidate="password_confirm" ControlToCompare="password" Type="String" ErrorMessage="Confirmation password does not match password." ID="password_confirm_compare">
*
</asp:CompareValidator>
</td>
</tr>
<tr>
<td>
Phone
</td>
<td>
<asp:textbox runat="Server" columns="15" id="phone"></asp:textbox>
</td>
<td>
<asp:regularexpressionvalidator runat="Server" id="phone_regex" controltovalidate="phone" errormessage="Phone must be in the format of NNN-NNN-NNNN." display="dynamic" validationexpression="^[2-9]\d{2}-\d{3}-\d{4}$">
*
</asp:regularexpressionvalidator>
</td>
</tr>
<tr>
<td>
Social Security Number
</td>
<td>
<asp:textbox runat="Server" columns="15" id="ssn"></asp:textbox>
</td>
<td>
<asp:regularexpressionvalidator runat="Server" id="ssn_regex" controltovalidate="ssn" errormessage="SSN must be in the format of NNN-NN-NNNN." display="dynamic" validationexpression="^\d{3}-\d{2}-\d{4}$">
*
</asp:regularexpressionvalidator>
</td>
</tr>
<tr>
<td>
ZIP/Postal Code
</td>
<td>
<asp:textbox runat="Server" columns="15" id="zip"></asp:textbox>
</td>
<td>
<asp:regularexpressionvalidator runat="Server" id="zipregex" controltovalidate="zip" errormessage="ZIP code must be either NNNNN or NNNNN-NNNN. Canadian postal code must be in the format of ANA NAN." display="dynamic" validationexpression="^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z]\s{1}\d[A-Z]\d$">
*
</asp:regularexpressionvalidator>
</td>
</tr>
<tr>
<td>
Total Donation:
</td>
<td>
<asp:textbox runat="Server" columns="6" id="total_donation"></asp:textbox>
</td>
<td>
<asp:requiredfieldvalidator runat="Server" id="total_donation_required" controltovalidate="total_donation" display="dynamic" errormessage="A value for total donation is required.">
*
</asp:requiredfieldvalidator>
<asp:rangevalidator runat="Server" id="total_donation_range" controltovalidate="total_donation" display="dynamic" errormessage="The total donation must be from 0 to 5000 dollars." minimumvalue="0" maximumvalue="5000" Type="Currency">
*
</asp:rangevalidator>
</td>
</tr>
<tr>
<td>
Portion of above donation to apply toward .NET programmer training:
</td>
<td>
<asp:textbox runat="Server" columns="6" id="net_portion"></asp:textbox>
</td>
<td>
<asp:requiredfieldvalidator runat="Server" id="net_portion_required" controltovalidate="net_portion" display="dynamic" errormessage="A portion to apply toward .NET programmer training is required.">
*
</asp:requiredfieldvalidator>
<asp:CompareValidator Runat="server" ID="net_portion_compare" ControlToValidate="net_portion" ControlToCompare="total_donation" Operator="LessThanEqual" ErrorMessage="Your .NET portion cannot exceed your total donation." Display="Dynamic" Type="Currency">
*
</asp:CompareValidator>
<asp:CompareValidator Runat="server" ID="net_portion_positive" ControlToValidate="net_portion" ValueToCompare="0" Type="Currency" Display="Dynamic" Operator="GreaterThanEqual" ErrorMessage="Your .NET portion cannot be less than 0.">
*
</asp:CompareValidator>
</td>
</tr>
<tr>
<td>
Enter a Perfect Square (the square of an integer):
</td>
<td>
<asp:textbox runat="Server" columns="30" id="square"></asp:textbox>
</td>
<td>
<asp:CustomValidator Runat="server" ID="square_custom" Display="Dynamic" OnServerValidate="validateSquare" EnableClientScript="False" ErrorMessage="The value entered is not a perfect square.">
*
</asp:CustomValidator>
</td>
</tr>
</table>
<asp:button id="save_button" runat="Server" text="Save"></asp:button>
</form>
</body>
</HTML>